package Library.Game;

import java.rmi.*;
import java.util.*;

/**
 * Klasse IGameInfo bevat informatie over een bepaalde Game.
 * Dit is een beperkte variant van IGame.
 */
public interface IGameInfo extends Remote
{
    /**
     * Geeft de naam van de game terug
     * @return gamename
     * @throws RemoteException
     */
    String getName() throws RemoteException;
    
    /**
     * Geeft het aantal spelers terug.
     * @return aantal spelers
     * @throws RemoteException
     * @throws Exception
     */
    int getPlayers() throws RemoteException, Exception;
    
    /**
     * Geeft het maximum aantal spelers terug.
     * @return maximum aantal spelers
     * @throws RemoteException
     */
    int getMaxPlayers() throws RemoteException;

   /**
    * Geeft een lijst met spelers terug.
    * @return lijst met spelers
    * @throws RemoteException
    * @throws Exception
    */
   List<IPlayer> getPlayerList() throws RemoteException, Exception;
   
   /**
    *
    * @return
    * @throws RemoteException
    * @throws Exception
    */
   int getState() throws RemoteException, Exception;
   
   /**
    * 
    * @return
    * @throws RemoteException
    * @throws Exception
    */
   int getGameTime() throws RemoteException, Exception;

   
   /**
    * 
    * @return
    * @throws RemoteException
    * @throws Exception
    */
   int getTurnTime() throws RemoteException, Exception;
   
   String getGameWinner() throws RemoteException, Exception;
}
